#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "./ui_mainwindow.h"
#ifdef  _WIN64
#pragma warning (disable:4996)
#endif



#if defined(WIN32)
# include <windows.h>
# include <conio.h>
#else
# include "conio.h"
# include <stdlib.h>
# include <ctype.h>
# include <string.h>
#endif

#include <HD/hd.h>
#include <HDU/hduError.h>
#include <HDU/hduVector.h>
#include <QTimer>
#include <QDebug>

// 主窗口类，继承自 QMainWindow
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    // 构造函数，用于初始化主窗口
    MainWindow(QWidget *parent = nullptr);
    // 析构函数，用于清理资源
    ~MainWindow();

private slots:

    // 退出按钮的点击事件处理槽函数
    void on_quitButton_clicked();


private:
    // 指向 UI 界面的指针
    Ui::MainWindow *ui;
    // 触觉设备句柄
    HHD hHD;
    // 调度器回调句柄
    HDSchedulerHandle gCallbackHandle;
    // 当前弹簧刚度
    HDdouble gSpringStiffness;
    // 设备支持的最大弹簧刚度
    HDdouble gMaxStiffness;
    // 弹簧刚度的增量步长
    HDdouble gStiffnessIncrement;
    void updatePositionLabel(const hduVector3Dd& position, const hduVector3Dd& JointEncoders, const hduVector3Dd& GimbalEncoders,const hduVector3Dd& force);
    QTimer *timer; // 添加 QTimer 成员变量


};
#endif // MAINWINDOW_H
